﻿/*803. 区间合并
给定 n个区间 [li,ri]，要求合并所有有交集的区间。
注意如果在端点处相交，也算有交集。
输出合并完成后的区间个数。
例如：[1,3]和 [2,6]可以合并为一个区间 [1,6]

输入格式
第一行包含整数 n
接下来 n行，每行包含两个整数 l和 r

输出格式
共一行，包含一个整数，表示合并区间完成后的区间个数。

数据范围
1≤n≤100000,−109≤li≤ri≤109
输入样例：
5
1 2
2 4
5 6
7 8
7 9
输出样例：
3
*/

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
const int N = 100010;
typedef pair<int, int> PII;
vector<PII> as;

void merge(vector<PII>& seg)//&
{
    vector<PII>res;
    sort(seg.begin(), seg.end());//first,seg.second()) //忘记写了
    int st = seg[0].first, ed = seg[0].second;
    for (int i = 1; i < seg.size(); i++)
    {
        if (ed < seg[i].first)//seg.first  
        {
            res.push_back({ st,ed });
            st = seg[i].first;
            ed = seg[i].second;
        }
        else//
            ed = max(ed, seg[i].second);
    }
    //这样也可以，y总写法：
    /*int st=-2e9,ed=-2e9;
    for(int i=0;i<seg.size();i++)
    {

        if(ed<seg[i].first)//seg.first
        {
            if(st!=-2e9)
            {
                res.push_back({st,ed});//res-push_back不是as输入
            }
            st=seg[i].first;
            ed=seg[i].second;
        }
        else//
            ed=max(ed,seg[i].second);
    }
    if(st!=-2e9)//忘写了
    {
        res.push_back({st,ed});
    }*/
    /*
    * for(auto seg:segs)
    {
        if(ed<seg.first)
        {
            if(st!=-2e9)
            {
                res.push_back({st,ed});
            }
            st=seg.first;
            ed=seg.second;
        }
        ed=max(ed,seg.second);
    }
    if(st!=-2e9)
    {
        res.push_back({st,ed});
    }
    */
    res.push_back({ st,ed });
    as = res;
}

int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int l, r;
        cin >> l >> r;
        as.push_back({ l,r });
    }
    merge(as);
    cout << as.size() << endl;
}
/*总结
1.res.push_back({st,ed});最后一个的加进来，别忘记啦
2.sort--pair<>:begin()和second(),单个访问segs[i]是first和second
3.sort排序一下
*/